Methodology
Moving Beyond
Correlation
01
Outcome data, not proxies. Dataset includes direct signals — booking_bool and click_bool — enabling causal measurement of actual behavior.
02
Funnel analysis. Impression → Click → Booking rates measured by segment to locate where friction occurs.
03
Hypothesis-driven. Five specific hypotheses tested with statistical comparison — price, position, ranking quality, trust signals, and experience effects.
04
100k sample. 3,542 unique searches, 8,390 unique properties from the Kaggle Expedia Personalized Sort Challenge (2012–2013).
Funnel Analysis
The Drop Happens
After the Click
Both metrics below are percentages of total impressions — so they're directly comparable. Users click at similar rates; they book at very different ones.
CTR: Budget 4.6% · Mid 4.7% · Luxury 4.1% — of impressions clicked
Booking rate: Budget 3.04% · Mid 2.89% · Luxury 2.20% — of impressions booked
CTR is similar. Booking rate diverges sharply. The gap opens after the click — on the hotel detail page, not in the search results.
Finding 01 of 05
Price Is Already
At Equilibrium
There is a 0.83pp spread across price tiers — but the market has already priced this in. There is no room left to move.
Price-to-booking correlation: +0.0289. Hotels are already competitively priced — the spread reflects market equilibrium, not an untapped lever. Redeploying this effort elsewhere has far higher ROI.
01
Finding 02 of 05
Position
Drives 5.22× Lift
The single most powerful conversion lever — and it works through trust, not just visibility.
Booking elasticity (5.22×) exceeds click elasticity (4.53×). Position matters more for post-click conversion than for getting the click — it functions as a credibility signal, not just a ranking slot.
02
Finding 03 of 05
CTR Is Similar —
Post-Click Tells the Real Story
Of every 100 hotel listings shown in search results, roughly 4–5 get clicked across all segments. The conversion gap happens after that click.
4.6%
Budget: clicked per 100 listings shown → 66% of those clickers book
4.7%
Mid-tier: clicked per 100 listings shown → 62% of those clickers book
4.1%
Luxury: clicked per 100 listings shown → only 54% of those clickers book
A 0.6pp CTR difference is modest. The post-click conversion gap — Budget 66% vs Luxury 54% — is 12pp wider. The problem is what users find after they click, not how we rank.
03
Finding 04 of 05
The Quality Trust Gap
Explains Everything
Star ratings are industry classifications (1–5★). Review scores are guest ratings on the same 0–5 scale.
| Segment |
Star Rating Promise |
Review Score Delivery |
Gap |
Hotels Beating Promise |
Booking Rate |
| Budget |
2.40 ★ |
3.39 |
+41% |
78% |
3.04% |
| Mid |
3.34 ★ |
3.97 |
+18% |
73% |
2.89% |
| Luxury |
4.30 ★ |
4.20 |
−2.3% |
39% |
2.20% |
Only 39% of luxury hotels beat their promise, vs. 78% of Budget hotels. Budget travellers expect little and are delighted; luxury travellers expect perfection and feel let down. The fix is credibility, not price.
04
Finding 05 of 05
Trust Drives
1.34× More Bookings
Returning visitors and new visitors click at nearly the same rate — but returning visitors book significantly more.
Click rates are nearly identical (4.49% vs 4.61%). Trust — not visibility — is the differentiator.
05
Root Cause
The Luxury
Credibility Problem
Budget
Promise
2.40 ★
+41% over-delivers
Delivers
3.39 score
Mid-tier
Promise
3.34 ★
+18% over-delivers
Delivers
3.97 score
Luxury
Promise
4.30 ★
−2.3% under-delivers
Delivers
4.20 score
Strategy
Three Priorities.
One Root Fix.
Priority 01
Fix the Luxury Quality Gap
Audit all 4.3★+ luxury listings for promise-delivery gaps. Delist or require improvement where gap exceeds 0.2★. Replace star ratings with verified buyer scores in search results.
+0.6pp
Expected booking rate lift
Priority 02
Retrain Ranking on Conversion Signals
Incorporate quality signals — verified reviews, satisfaction rates, on-time delivery — alongside relevance. Surface high-confidence hotels at Position 1–3 where the conversion multiplier is greatest.
+0.4pp
Expected incremental lift
Priority 03
Build Trust Signals into the UI
Highlight verified buyer reviews. Show "beats traveler expectations" badges. Expose returning visitor satisfaction rates. Help skeptical luxury buyers find confidence before they bounce.
+0.3pp
Expected secondary lift
Implementation
8-Week
Roadmap
Phase 01
Wk 1–2
- Audit all 4.3★+ luxury listings
- Flag promise-delivery gaps >0.2★
- Segment by gap severity
Phase 02
Wk 3–4
- Investigate root causes per property
- Photos, amenities, maintenance flags
- Delist or require remediation
Phase 03
Wk 5–6
- A/B test: verified ratings vs. star ratings
- Launch quality-based ranking experiment
- Measure booking lift in luxury segment
Phase 04
Wk 7–8
- Roll out trust signal UI changes
- Monitor secondary conversion lift
- Report: 2.20% → 2.31% target
Business Impact
A $50M+ Opportunity
Waiting for a Quality Fix
2.20%
Current luxury booking rate — baseline we're improving from
2.31%
Target luxury booking rate after quality gap fix — a 5% lift
How we get to $50M+
Expedia processes ~500M hotel searches/year → Luxury segment (~20%) = ~100M luxury searches
At ~4.5% CTR → ~4.5M luxury hotel page views
Lifting post-click conversion by 5% → ~225k incremental bookings
At avg. luxury booking value ~$250 → ~$56M additional GMV
Appendix
Data &
Methodology
Dataset
- 100,000 sample searches from Kaggle: Expedia Personalized Sort Challenge (2012–2013)
- 3,542 unique searches · 8,390 unique properties
- 54 columns including search context, property attributes, competitor pricing, outcome flags
- Price range capped at $8–$1,000 to remove outliers ($8–$176k raw range)
- 35% competitor data missingness — analyzed only searches with ≥3 competitors
Limitations & Caveats
- Data is from 2012–2013; booking behavior has likely evolved
- Properties and visitors are anonymized — no name-level validation
- Sparse new-user history data (NaN for visitors with no prior bookings)
- Sample of 10k rows used for most analyses; 100k for segment overviews
- Findings framed as "correlated with" not "causes" except where outcome-driven A/B logic supports causation